#pragma once
#include <string>
#include <vector>

#include "util.h"


class HighlightingOptions{
public:
    bool Numbers();
    bool Strings();
    bool Characters();
    bool Comments();
    bool MultilineComments();

    std::vector<std::string> PrimaryKeywords();
    std::vector<std::string> SecondaryKeywords();


private:
    bool _numbers=true;
    bool _strings=true;
    bool _characters=true;
    bool _comments=true;
    bool _multiline_comments=true;


    std::vector<std::string> _primary_keywords;
    std::vector<std::string> _secondary_keywords;

    friend class FileType;
};



class FileType{
public:
    FileType();
    ~FileType();

    static FileType Create(std::string fileName);

    std::string Name();
    HighlightingOptions HlOptions();

private:
    std::string _name;
    HighlightingOptions _hl_opts;
};
